from django.db import models
from django.contrib.auth.models import User
# Create your models here. 在这里创建你的模型 告诉django 如何处理应用程序中储存的数据
#在代码层，模型就是一个类
class Topic(models.Model):#继承模型基本功能点类
    '''用户学习的主题'''
    text = models.CharField(max_length=200) #由字符串或者是文本组成的数据（名称，标题或者是城市的名字，必须告诉django在数据库中预留多少空间，里面的参数就是这个功能）
    #记录日期和时间的数据，参数的作用为每当用户创建新的主题，都将这个属性设置为当前的日期时间
    data_added = models.DateTimeField(auto_now_add=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    def __str__(self):#显示模型的简单表示，返回对象的属性，即设置的主题和创建主题是所在的时间
        '''返回模型的字符串表示'''
        return self.text
class Entry(models.Model): #继承django 的类Model
    '''学到的有关某个主题的具体信息'''
    topic = models.ForeignKey(Topic,on_delete=models.CASCADE)#外键，将每个条目关联到特定主题
    text = models.TextField()#不限制条目的长度就什么都不写#
    data_added = models.DateTimeField(auto_now_add=True)#按创建顺序呈现条目，并且在每个条目旁边放置时间戳
    class Meta():#嵌套 存储用于管理模型的额外信息
        verbose_name_plural = 'enties'
    def __str__(self):
        '''返回模型的字符串表示'''
        if len(self.text) > 50:
            return self.text[:50] + '...' #切片，只显示条目的前50个字符
        return self.text # 如果小于等于50个字符，则全部显示

